Lua 您所在的位置:网站首页 unity lua框架 Lua

Lua

2023-03-26 16:42| 来源: 网络整理| 查看: 265

我在Lua文档中发现了一段奇怪的代码:

function trim8(s) local i1,i2 = find(s,'^%s*') if i2 >= i1 then s = sub(s,i2+1) end local i1,i2 = find(s,'%s*$') if i2 >= i1 then s = sub(s,1,i1-1) end return s end

为什么local再次使用i1和i2?它们是否已在局部变量中声明?local每次要分配关键字时,是否必须重复关键字?

1> hjpotter92..:

不,没有必要local一遍又一遍地使用.变量i1和i2将local在该函数的范围,因为第一线本身.

虽然不应该这样做,但一遍又一遍地定义相同的变量并没有错.它只会将堆栈中的新位置分配给较新的位置,并遮挡较旧的位置.

以下是一个简单函数的指令输出:

function t() local i = 2 local i = 3 end t() function

和更新的第二只

注意第二条指令的区别

除此之外该功能效率很低您可以改为使用以下内容

堆栈位置局部变量不受垃圾回收的影响存储在阴影局部变量中的值仍被视为可访问

从技术上讲在第二个声明中使用与否并不相同使用秒将声明另一个变量

但是在您的示例代码中它们基本相同检查这些更简单的代码

使用输出以下结果



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有